package vo

import (
	"time"
)

// CreateFactoryRebateReq 创建厂家返点请求

type CreateFactoryRebateReq struct {
	GoodsID            int     // 商品ID
	Rebate             float32 // 返点百分比
	ValidityStartTime  string  // 开始有效期
	ValidityEndTime string  // 结束有效期
}

// CreateFactoryRebateRsp 创建厂家返点响应

type CreateFactoryRebateRsp struct {
	ID int
}

// UpdateFactoryRebateReq 更新厂家返点请求

type UpdateFactoryRebateReq struct {
	ID                 int     // 返点ID
	Rebate             float64 // 返点百分比
	ValidityStartTime  string  // 开始有效期
	ValidityEndTime string  // 结束有效期
}

// UpdateFactoryRebateRsp 更新厂家返点响应

type UpdateFactoryRebateRsp struct{}

// ListFactoryRebateReq 获取厂家返点列表请求

type ListFactoryRebateReq struct {
	Page     int    // 页码
	PageSize int    // 每页数量
	BarCode  string // 商品条码,可多个, 用逗号分隔
	Search   string // 搜索关键词(商品名称/品牌)
}

// FactoryRebate 厂家返点信息

type FactoryRebate struct {
	ID                 int       // 返点ID
	GoodsID            int       // 商品ID
	Rebate             float64   // 返点百分比
	ValidityStartTime  string    // 开始有效期
	ValidityEndTime string    // 结束有效期
	CreatedAt          time.Time // 创建时间
	UpdatedAt          time.Time // 更新时间
	Goods 				*Goods
}

// ListFactoryRebateRsp 获取厂家返点列表响应

type ListFactoryRebateRsp struct {
	Items []*FactoryRebate
	Total int64
}

// GetFactoryRebateReq 获取单个厂家返点请求

type GetFactoryRebateReq struct {
	ID int // 返点ID
}

// GetFactoryRebateRsp 获取单个厂家返点响应

type GetFactoryRebateRsp struct {
	*FactoryRebate
}

// BatchUpdateFactoryRebateReq 批量更新厂家返点请求
type BatchUpdateFactoryRebateReq struct {
	GoodsIDs           []int    // 商品ID列表
	Rebate             float64  // 返点百分比
	ValidityStartTime  string   // 开始有效期
	ValidityEndTime    string   // 结束有效期
}

// BatchUpdateFactoryRebateRsp 批量更新厂家返点响应
type BatchUpdateFactoryRebateRsp struct {
	SuccessCount int // 成功更新的商品数量
	FailedCount  int // 更新失败的商品数量
}
